#include <gtest/gtest.h>
#include <iostream>
#include "Enemy.h"

TEST(Enemytest, EnemyHealth) 
{
    Enemy enemy;
    ASSERT_EQ(enemy.getCurHealth(), 0);
    ASSERT_EQ(enemy.getMaxHealth(), 0);
    ASSERT_EQ(enemy.getCurHealth(), enemy.getMaxHealth());
}

TEST(Enemytest, EnemyDamage)
{
    Enemy enemy;
    ASSERT_EQ(enemy.getMaxDamage(), enemy.getMinDamage());
    ASSERT_EQ(0, enemy.getMinDamage());
    ASSERT_EQ(0, enemy.getMaxDamage());
}

TEST(Enemytest, EnemyArmor)
{
    Enemy enemy;
    ASSERT_EQ(0, enemy.getArmor());
}

TEST(Enemytest, EnemySelector)
{
    Enemy enemy;
    {
        enemy.enemySelection(1);
        ASSERT_EQ(enemy.getName(), "Goblin");
        ASSERT_EQ(enemy.getCurHealth(), 50);
        ASSERT_EQ(enemy.getMaxHealth(), 50);
        ASSERT_EQ(enemy.getMinDamage(), 5);
        ASSERT_EQ(enemy.getMaxDamage(), 8);
        ASSERT_EQ(enemy.getArmor(), 3);
    }
    {
        enemy.enemySelection(2);
        ASSERT_EQ(enemy.getName(), "Ghoul");
        ASSERT_EQ(enemy.getCurHealth(), 80);
        ASSERT_EQ(enemy.getMaxHealth(), 80);
        ASSERT_EQ(enemy.getMinDamage(), 8);
        ASSERT_EQ(enemy.getMaxDamage(), 15);
        ASSERT_EQ(enemy.getArmor(), 5);
    }
    {
        enemy.enemySelection(3);
        ASSERT_EQ(enemy.getName(), "Zombie");
        ASSERT_EQ(enemy.getCurHealth(), 100);
        ASSERT_EQ(enemy.getMaxHealth(), 100);
        ASSERT_EQ(enemy.getMinDamage(), 10);
        ASSERT_EQ(enemy.getMaxDamage(), 20);
        ASSERT_EQ(enemy.getArmor(), 5);
    }
}